home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / bbs / mhis020.zip / FLAGS.MH < prev    next >
Text File  |  1996-09-10  |  2KB  |  85 lines

  1. #ifndef __FLAGS_MH
  2. #define __FLAGS_MH
  3.  
  4. #include "upchar.mh"
  5. #include "callinfo.mh"
  6.  
  7. #define FLAG_MENU_WIDTH 20
  8.  
  9. void flag_menu (char: key, string: desc) {
  10.   if (sys.current_col + FLAG_MENU_WIDTH > usr.width + 1)
  11.     print ("\n");
  12.   print (COL_LCYAN, "[", COL_YELLOW, key, COL_LCYAN, "] ", COL_GREEN, strpad (desc,
  13.     FLAG_MENU_WIDTH - 4, ' '));
  14.   }
  15.  
  16. int toggle_flag (int: flags, int: which_to_toggle) {
  17.   if (flags & which_to_toggle) {
  18.     return flags - which_to_toggle;
  19.     }
  20.   else {
  21.     return flags + which_to_toggle;
  22.     };
  23.   }
  24.  
  25. int edit_flags (int: flags) {
  26.   char: key;
  27.   for (;;) {
  28.     print (COL_CYAN, "\nCurrent flags: ", COL_LMAGENTA, flag_string (flags),'\n');
  29.     flag_menu ('L', "Logged on");
  30.     flag_menu ('C', "Dropped carrier");
  31.     flag_menu ('E', "Ejected");
  32.     flag_menu ('P', "Paged after hrs");
  33.     flag_menu ('D', "Download limit");
  34.     flag_menu ('X', "Account expired");
  35.     flag_menu ('T', "Time limit");
  36.     flag_menu ('N', "Nerd enabled");
  37.     flag_menu ('B', "Barricade fail");
  38.     flag_menu ('!', "Clear all flags");
  39.     flag_menu ('Q', "Quit");
  40.     print ("\n", COL_LBLUE, "Select: ");
  41.     key := upChar (getch ());
  42.     print (key);
  43.     print ("\n");
  44.     if (key = 'Q' or key = '\r') {
  45.       return flags;
  46.       }
  47.     else if (key = '!') {
  48.       flags := 0;
  49.       }
  50.     else if (key = 'L') {
  51.       flags := toggle_flag (flags, CALL_LOGON);
  52.       }
  53.     else if (key = 'C') {
  54.       flags := toggle_flag (flags, CALL_CARRIER);
  55.       }
  56.     else if (key = 'E') {
  57.       flags := toggle_flag (flags, CALL_EJECTED);
  58.       }
  59.     else if (key = 'P') {
  60.       flags := toggle_flag (flags, CALL_PAGED_AH);
  61.       }
  62.     else if (key = 'D') {
  63.       flags := toggle_flag (flags, CALL_DLEXCEED);
  64.       }
  65.     else if (key = 'X') {
  66.       flags := toggle_flag (flags, CALL_EXPIRED);
  67.       }
  68.     else if (key = 'T') {
  69.       flags := toggle_flag (flags, CALL_TIMELIMIT);
  70.       }
  71.     else if (key = 'N') {
  72.       flags := toggle_flag (flags, CALL_NERD);
  73.       }
  74.     else if (key = 'B') {
  75.       flags := toggle_flag (flags, CALL_BARRPWD);
  76.       }
  77.     else {
  78.       print (COL_WHITE, "\nSorry, that is not an option.\n");
  79.       };
  80.     };
  81.   return flags;
  82.   }
  83.  
  84. #endif
  85.